package com.example.myspringboot.test;

/**
 * @author zheng
 */
public class FactoryDemo {
    // 定义一个产品接口
    public interface Product {
        void use();
    }
    // 实现产品接口的具体产品类
    public static class ProductA implements Product {
        @Override
        public void use() {
            System.out.println("Using Product A");
        }
    }
    public static class ProductB implements Product {
        @Override
        public void use() {
            System.out.println("Using Product B");
        }
    }
    // 使用静态方法来获取产品实例
    public static Product getProduct(String type) {
        if ("A".equals(type)) {
            return new ProductA();
        } else if ("B".equals(type)) {
            return new ProductB();
        } else {
            return null; // 或者抛出一个异常
        }
    }
    // 使用示例
    public static void main(String[] args) {
        // 获取并使用ProductA
        Product productA = FactoryDemo.getProduct("A");
        productA.use(); // 输出 "Using Product A"
        // 获取并使用ProductB
        Product productB = FactoryDemo.getProduct("B");
        productB.use(); // 输出 "Using Product B"
    }
}
